package com.coder.books.thinkinjava.enumerated;

import java.util.Random;

/**
 * 自动售货机
 *
 * @author yuhushuan
 * @date 2020/8/30 10:29
 */
public enum Input {

    // 5 美分
    NICKEL(5),
    // 10 美分
    DIME(10),
    // 25 美分
    QUARTER(25),
    // 1 美元
    DOLLAR(100),

    // 牙膏
    TOOTHPASTE(200),
    // 炸薯条
    CHIPS(75),
    // 苏打水
    SODA(100),
    // 肥皂
    SOAP(50),
    ABORT_TRANSACTION {
        @Override
        int amount() {
            throw new RuntimeException("ABORT.amount()");
        }
    },
    STOP {
        @Override
        int amount() {
            throw new RuntimeException("SHUT_DOWN.amount()");
        }
    };


    int value;

    Input(int value) {
        this.value = value;
    }

    Input() {
    }

    int amount() {
        return value;
    }

    static Random rand = new Random(47);

    public static Input randomSelection() {
        // 不包含 STOP；
        return values()[rand.nextInt(values().length - 1)];
    }
}
